package DAO;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import DBConection.ConexionBD;
import Modelo.*;

public class PeajeDao {

	private Connection conn;

	public PeajeDao() {
		conn = ConexionBD.getConnection();
	}

	public void addPeaje(Peaje objPeaje) {

		try {

			String sql = "INSERT INTO "+ConexionBD.getNombre_BD()+".TBL_Peajes(Nombre_Peaje,Municipio,Departamento)"
					+ " VALUES (?, ?, ?)";
			PreparedStatement ps = conn.prepareStatement(sql);

			ps.setString(1, objPeaje.getNombre_Peaje());
			ps.setString(2, objPeaje.getMunicipio());
			ps.setString(3, objPeaje.getDepartamento());
			
			ps.executeUpdate();

		} catch (SQLException e) {
			e.printStackTrace();
		}
	}	
		public void removePeaje(int PeajeId) {
			try {
				String sql = "DELETE FROM "+ConexionBD.getNombre_BD()+".TBL_Peajes WHERE PeajeId=?";
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1, PeajeId);
				ps.executeUpdate();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public void editPeaje(Peaje objPeaje) {
			try {
				String sql = "UPDATE "+ConexionBD.getNombre_BD()+".TBL_Peajes SET Nombre_Peaje=?,Municipio=?,Departamento=? "
						+ " WHERE PeajeId=?";
				PreparedStatement ps = conn.prepareStatement(sql);

				ps.setString(1, objPeaje.getNombre_Peaje());
				ps.setString(2, objPeaje.getMunicipio());
				ps.setString(3, objPeaje.getDepartamento());
				ps.setInt(4, objPeaje.getPeajeId());
				ps.executeUpdate();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public List<Peaje> getAllPeajes() {
			List<Peaje> Peajes = new ArrayList<Peaje>();
			try {
				String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Peajees";
				PreparedStatement ps = conn.prepareStatement(sql);
				ResultSet rs = ps.executeQuery();
				while (rs.next()) {
					Peaje objPeaje = new Peaje();
					objPeaje.setPeajeId(rs.getInt("PeajeId"));
					objPeaje.setNombre_Peaje(rs.getString("Nombre_Peaje"));
					objPeaje.setMunicipio(rs.getString("Municipio"));
					objPeaje.setDepartamento(rs.getString("Departamento"));
					
					Peajes.add(objPeaje);
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

			return Peajes;
		}

		public Peaje getPeajeById(int PeajeId) {
			Peaje objPeaje = new Peaje();
			try {
				String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Peajes WHERE PeajeId=?";
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1, PeajeId);
				ResultSet rs = ps.executeQuery();

				if (rs.next()) {
					objPeaje.setPeajeId(rs.getInt("PeajeId"));
					objPeaje.setNombre_Peaje(rs.getString("Nombre_Peaje"));
					objPeaje.setMunicipio(rs.getString("Municipio"));
					objPeaje.setDepartamento(rs.getString("Departamento"));
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return objPeaje;
		}	
		
	

}

